package com.jacky.链表;

public class 反转链表_206 {


    public class ListNode {
        int val;
        ListNode next;

        ListNode(int x) {
            val = x;
        }
    }

    public ListNode reverseList(ListNode head) {
        //定义前一个节点，把当前节点的的next指针，指向前一个节点，cur.next=pre
        ListNode pre = null;
        //一开始当前节点就是头节点
        ListNode cur = head;
        //遍历链表，循环条件是，当前不等于null
        while (cur != null) {
            //把当前节点的next先用临时节点先存起来，不然当前节点的next指向前一个节点之后，找不到原来的next节点，导致遍历不下去
            ListNode temp = cur.next;
            //当前节点的next指向前一个节点
            cur.next = pre;
            //前节点向右移动一位
            pre = cur;
            //当前节点也向前移动一位
            cur = temp;
        }
        return pre;
    }

}
